package excollection;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * @author: knowno
 * @create: 2025-09-15 11:02
 * @Version 1.0
 **/
public class TestLinkedList {
    public static void main(String[] args) {

        //创建一个ArrayList集合
        LinkedList linkedList1 = new LinkedList();

        //添加元素
        linkedList1.add("hello");
        linkedList1.add("world");
        linkedList1.add("java");

        //打印集合
        System.out.println(linkedList1);

        //获取元素
        System.out.println(linkedList1.get(0));

        //删除元素
        linkedList1.remove(0);
        System.out.println(linkedList1);

        //集合的大小
        System.out.println(linkedList1.size());

        //遍历集合
        for (int i = 0; i < linkedList1.size(); i++) {
            System.out.println(linkedList1.get(i));
        }

        //增强for循环遍历集合
        for (Object o : linkedList1) {
            System.out.println(o);
        }

        //集合的清空
        linkedList1.clear();
        System.out.println(linkedList1);

        //判断集合是否为空
        System.out.println(linkedList1.isEmpty());

        //判断集合是否包含某个元素
        System.out.println(linkedList1.contains("hello"));

        //和ArrayList相比,不同之处

        linkedList1.addFirst("first");
        linkedList1.addLast("last");
        System.out.println(linkedList1);

        System.out.println(linkedList1.getFirst());
        System.out.println(linkedList1.getLast());


        System.out.println(linkedList1.removeFirst());
        System.out.println(linkedList1.removeLast());
        System.out.println(linkedList1);

        //和ArrayList相比,相同之处
        //都实现了List接口
        //都可以存储重复元素
        //都可以存储null元素
        //都有索引
        //都可以根据索引来操作元素
        //底层都是链表,而ArrayList是数组
        //LinkedList中人加入一些收尾操作的特殊方法

    }
}
